package com.neusoft.bizcore.activiti.event;

import com.neusoft.bizcore.activiti.enums.EventTypeEnum;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class PendingDataEvent {

    protected PendingDataEvent(final String instanceId, final EventTypeEnum type, final String msg) {
        this.instanceId = instanceId;
        this.type = type;
        this.msg = msg;
    }

    protected PendingDataEvent(final String instanceId, final String nodeId, final EventTypeEnum type,
            final String msg) {
        this.instanceId = instanceId;
        this.nodeId = nodeId;
        this.type = type;
        this.msg = msg;
    }

    protected PendingDataEvent(final String instanceId, final String nodeId,
            final String taskId, final EventTypeEnum type, final String msg) {
        this.instanceId = instanceId;
        this.nodeId = nodeId;
        this.taskId = taskId;
        this.type = type;
        this.msg = msg;
    }

    // 工作流instanceId
    protected String instanceId;
    // 工作流nodeId
    protected String nodeId;
    // 工作流taskId
    protected String taskId;
    // 业务类名称
    protected String clazzName;
    protected EventTypeEnum type;
    // 附带的事件消息信息
    protected String msg;
}
